const { ipcRenderer } = require('electron');

var appex = {
    /**
     * 打开
     */
    logout: function () {
        ipcRenderer.sendToHost('logout');
    },
    /**
     * 
     * @param {*} opts 
     */
    openEEO: function (opts) {
        // const opts = {
        //     /**
        //      * 电话号带国际区号
        //      */
        //     account: '86-13012345678',
        //     schoolId: 123456,
        //     courseId: 123456,
        //     lessonId: 123456,
        //     type: 'OnlineClass',
        // }

        ipcRenderer.sendToHost('eeo', opts);
    },

    openEEOByToken: function (token) {
        ipcRenderer.sendToHost('eeo-token', token);
    },

    openEEOByClass: function (opts) {
        ipcRenderer.sendToHost('eeobyclass', opts);
    },

    loadURL: function (url) {
        ipcRenderer.sendToHost('loadURL', url);
    },

    openExternal: function (url, isLogin) {
        if (url.startsWith("//")) {
            url = `${location.protocol}${url}`;
        }
        ipcRenderer.sendToHost('openExternal', url, isLogin === undefined || isLogin === null ? true : isLogin);
    },

    play: function (opts) {
        // const opts = {
        // consumerType	string	yes	
        // 1001001：老课堂，1002001：鲨鱼
        // productId	number	yes	产品id
        // productName	string	no	产品名称
        // learningSubjectId	number	yes	学习路径
        // optional	boolean	no	是否是选修
        // accountId	string	no	老课堂参数
        // cuid	number	no	老课堂参数
        // nodeId	number	yes	节点Id
        // videoId	number	yes	视频id
        // url	string	no	视频url, 老课常参数
        // orderNo	string	yes	订单号
        // keyVersion	string	no	预留
        // courseId	number	yes	 
        // }

        ipcRenderer.sendToHost('play', opts);
    },

    batchDownload: function (opts) {
        ipcRenderer.sendToHost('batchDownload', opts);
    },

    clearHistory: function () {
        ipcRenderer.sendToHost('clearHistory');
    },

    getRequestHeader: function () {
        const promise = new Promise((resolve) => {
            ipcRenderer.once('request-header', (event, headers) => {
                resolve(headers);
            });
            ipcRenderer.sendToHost('getRequestHeader');
        });
        return promise;
    },

    openEts: function (opts) {
        ipcRenderer.sendToHost('openEts', opts);
    },
    
    openECCP: function (opts) {
        ipcRenderer.sendToHost('openECCP', opts);
    },

    openProtocol: function(url) {
        ipcRenderer.sendToHost('openProtocol', url);
    }
};

window.appex = appex;

const url = new URL(location.href);
if (url.hostname === 'toeflpractice.ets.org') {
    require('./ets');
}